[JAVA]MaskFormatter的问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 11:19:18
try
{
MaskFormatter formatter = new MaskFormatter("###-##-####");
formatter.setValueContainsLiteralCharacters(false);
formatter.setPlaceholderCharacter('0');

JFormattedTextField ssnField = new JFormattedTextField(formatter);

ssnField.setValue("078-05-1120");
addRow("SSN Mask:", ssnField);
}
catch (ParseException exception)
{
exception.printStackTrace();
}
文本框ssnField没有任何内容,也无法输入,注释掉formatter.setValueContainsLiteralCharacters(false);一切正常。为什么不能设置呢
addRow是在面板中加入一个标签和一个文本框。

public void setValueContainsLiteralCharacters(boolean containsLiteralChars)如果为 true,则返回的值和设置的值还将包含掩码中的字面值字符。
例如,如果掩码为 '(###) ###-####',当前值为 '(415) 555-1212',且 valueContainsLiteralCharacters 为 true,则 stringToValue 将返回 '(415) 555-1212'。另一方面,如果 valueContainsLiteralCharacters 为 false,则 stringToValue 将返回 '4155551212'。

这里你选择false 那么去format你的输入又有什么意义呢??